import { http } from '@/utils'
import type { MenuItem } from './menu'

export type LoginParams = {
  /** 用户名 */
  username: string
  /** 密码 */
  password: string
  /** 验证码Id */
  captchaId: string
  /** 验证码 */
  verifyCode: string
}

export type LoginResult = {
  /** TOKEN */
  token: string
  /** TOKEN 过期时间 */
  expire: number
  /** 刷新TOKEN  */
  refreshToken: string
  /** 刷新TOKEN 过期时间 */
  refreshExpire: number
}

export type Person = {
  id: number
  createTime: string
  updateTime: string
  departmentId: string
  name: string
  username: string
  passwordV: number
  nickName: string
  headImg: string
  phone: string
  email: string
  remark: string
  status: number
  socketId: null
}

/** 获取验证码 */
export function getCaptcha() {
  return http.get<{
    captchaId: string
    data: string
  }>('/admin/base/open/captcha', { color: 'green' })
}
export function loginApi(data: LoginParams) {
  return http.post<LoginResult>('/admin/base/open/login', data)
}
/** 获取用户信息 */
export function getPerson() {
  return http.get<Person>('/admin/base/comm/person')
}
/** 获取权限信息 */
export function getPermmenu() {
  return http.get<{
    menus: MenuItem[]
    perms: string[]
  }>('/admin/base/comm/permmenu')
}
